package com.matu.util;

import com.matu.domain.Ligne;
import com.matu.domain.StationVelo;
import com.matu.service.ServiceJCDecaux;

public class Fiabilite {

	
	/**
	 * Constructeur par défaut
	 */
	Fiabilite() {
		
	}
	
	
	
	/**
	 * Calcule la fiabilité en % d'une ligne de vélo en fonction de la
	 * disponibilité de la station, des places de vélo et des vélos
	 * @param stationArr
	 * @return
	 */
	public static double calculeFiabiliteVelo(StationVelo stationArr) {
		
		ServiceJCDecaux sJCDecaux = new ServiceJCDecaux();
		StationVelo stationDep = sJCDecaux.getClosestStation
				(ToolBox.coordXPaulSab, ToolBox.coordYPaulSab);
		
		if (!stationArr.getStatus()) return 0;
		else return (((double) stationDep.getNbVelosDisp() /
					  (double) stationDep.getNbTotalPlaces() *100) + 
					 ((double) stationArr.getNbPlacesVelo() / 
					  (double) stationArr.getNbTotalPlaces() *100)) /2;
	}
	
	
	/**
	 * Calcule la fiabilité en % d'une ligne de bus ou de métro en
	 * fonction du ratio du nb de likes sur le nb de likes total
	 * @param ligne
	 * @return
	 */
	public static double calculeFiabiliteBusMetro(Ligne ligne) {
		int nbLikesTotal = ligne.getNbLikesTotal();
		double ratio = (double) ligne.getNbLikes() / (double) nbLikesTotal;
		
		if (ratio < 0) return 0;
		else if (nbLikesTotal == 0) return 50;
		else return (ratio *100);
	}
	
	
}
